package com.tanhua.server.controller;

import com.tanhua.server.service.SettingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

@RestController
@RequestMapping("/users")
public class SettingController {

    @Autowired
    private SettingService settingService;
//    移除黑名单数据
//    1、请求方式 delete
//    2、请求地址 /users/blacklist/:uid
//    3、请求参数 路径参数  uid  请求头上依然有Authorization
//    4、返回结果
    @DeleteMapping(value = "/blacklist/{uid}",name ="移除黑名单数据" )
    public ResponseEntity deleteBlacklist(@PathVariable("uid") Long blackUserId) throws Exception{
        return settingService.deleteBlacklist(blackUserId);
    }
//    黑名单分页数据
//    1、请求方式 get
//    2、请求地址 users/blacklist
//    3、请求参数 类型application/json  请求头上有Authorization    ？page=1&pagesize=10
//    4、返回结果 PageResult

    @GetMapping(value = "/blacklist",name ="黑名单分页数据" )
    public ResponseEntity queryBlacklist(@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "10") Integer pagesize) throws Exception{
        return settingService.queryBlacklist(page,pagesize);
    }


    //    通知设置 - 保存
//    1、请求方式 post
//    2、请求地址 users/notifications/setting
//    3、请求参数 类型application/json  请求头上有Authorization
//    请求体中 {"likeNotification":true,"pinglunNotification":true,"gonggaoNotification":false}
//    4、返回结果
    @PostMapping(value = "/notifications/setting",name ="设置陌生人问题 - 保存" )
    public ResponseEntity saveNotifications(@RequestBody Map param) throws Exception{
        Boolean like = (Boolean) param.get("likeNotification");
        Boolean pinglun = (Boolean) param.get("pinglunNotification");
        Boolean gonggao= (Boolean) param.get("gonggaoNotification");
        return settingService.saveNotifications(like,pinglun,gonggao);
    }


    //    设置陌生人问题 - 保存
//    1、请求方式 post
//    2、请求地址 users/questions
//    3、请求参数 类型application/json  请求头上有Authorization 请求体中 {"content":"C or D?"}
//    4、返回结果
    @PostMapping(value = "/questions",name ="设置陌生人问题 - 保存" )
    public ResponseEntity saveQuestions(@RequestBody Map param) throws Exception{
       String content = (String) param.get("content");
        return settingService.saveQuestions(content);
    }

 //    获取用户的通用设置 包含陌生人问题和通知
//    1、请求方式 get
//    2、请求地址 users/settings
//    3、请求参数 类型application/json  请求头上有Authorization
//    4、返回结果
    @GetMapping(value = "/settings",name =" 获取用户的通用设置 包含陌生人问题和通知" )
    public ResponseEntity querySettings() throws Exception{
        return settingService.querySettings();
    }
}
